From cf87b6f32738753051539c0753f8cc1334b94ff2 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 2 Apr 2008 16:48:15 +0000 Subject: [PATCH] bgo492134 - fix tilde expansion in GtkFileSystemUnix Signed-off-by: Federico Mena Quintero svn path=/trunk/; revision=19962 --- ChangeLog | 13 +++++++++++++ gtk/gtkfilesystemunix.c | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ef994d56b3..e7980f65b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2008-04-02 Federico Mena Quintero + + Fix http://bugzilla.gnome.org/show_bug.cgi?id=492134 - The file + chooser incorrectly substitutes and expands a ~ when you type it + in the filename entry. + + * gtk/gtkfilesystemunix.c (expand_tilde): Ensure that empty + basenames result in a slash-terminated pathname. + gtk_file_system_unix_parse() is correct, but it was splitting + "/home/username" into path="/home" and file_part="username", which + is not what the caller wants when the entry has just "~" or + "~username". + 2008-04-02 Tor Lillqvist * gtk/Makefile.am: Don't bother compiling gtksearchenginebeagle.c diff --git a/gtk/gtkfilesystemunix.c b/gtk/gtkfilesystemunix.c index ad225afde7..31387cbf76 100644 --- a/gtk/gtkfilesystemunix.c +++ b/gtk/gtkfilesystemunix.c @@ -1470,10 +1470,11 @@ expand_tilde (const char *filename) home = passwd->pw_dir; } + /* We put G_DIR_SEPARATOR_S so that empty basenames will make the resulting path end in a slash */ if (slash) return g_build_filename (home, G_DIR_SEPARATOR_S, slash + 1, NULL); else - return g_strdup (home); + return g_build_filename (home, G_DIR_SEPARATOR_S, NULL); } static gboolean -- 2.30.2